其他
原创 | CVE-2022-21999
关注我们
Part 1
Part 2
测试环境
漏洞复现
Part 3
Print Spool
主要组件
directory的值来支持单个spool directory。
成因分析
SetPrinterDataEx分析
System路径:DLL只能直接在C:\Windows\System32\路径下才可以(不包括下层目录)。 打印机驱动目录路径:DLL可以在打印机驱动目录下的任意路径。
printers\变为C:\Windows\System32\spool\drivers\x64
printers\。此种方法存在一定的缺陷,漏洞利用也是针对这种检查方式的绕过。
%SYSTEMROOT%\System32 % SYSTEMROOT% System32 %SYSTEMROOT%\System32\spool\drivers<ENVIRONMENT><DRIVERVERSION> %
SetPrinterDataEx 调用它。
Part 4
利用流程
创建打印机
调用 localspl!BuildPrinterInfo 时会创建spool directory。在 localspl!BuildPrinterInfo
赋予FILE_ADD_FILE 权限之前,进行最后检查以确保目录路径不在打印机驱动程序目录中。
C:\ Windows\System32\spool\drivers\x64\开头 SplLoadLibraryTheCopyFileModule 检查时,保证Spool directory路径以C:\ Windows\System32\spool\drivers\x64\开头
符号链接
,其内部的目录(文件)结构与打印机驱动程序目录是一致的。唯一的区别是他们的路径不一样,我认为这是一种高级映射方式。
参考链接
Escalation
往期推荐
原创 | 漏洞组合利用:LFR+XXE+PHP/Python反序列化getshell
原创 | ModSecurity 自建规则之路